/*========================================================事件绑定==============================================================*/
/**
 * 绑定事件
 * 添加多个函数
 * @param obj 元素对象
 * @param eventStr 事件名不带on
 * @param callback 回调函数
 */
function bind(obj, eventStr, callback) {
    if (obj.addEventListener) {
        obj.addEventListener(eventStr, callback, false);
    } else {
        obj.attachEvent('on' + eventStr, function () {
            //这里是为了让函数里面的this也是调用的这个元素对象
            callback.call(obj);
        });
    }
}

/**
 * 解除绑定事件，唯一不同就是传入想要解绑函数的名字，因为addEventListener添加函数可以为同一个事件
 * 添加多个函数
 * @param obj 元素对象
 * @param eventStr 时间名不带on
 * @param callbackName 函数名
 */
function unBind(obj, eventStr, callbackName) {
    if (obj.removeEventListener) {
        obj.removeEventListener(eventStr, callbackName, false);
    } else {
        obj.detachEvent('on' + eventStr, callbackName);
    }
}
/*========================================================end==============================================================*/
/*========================================================样式类==============================================================*/
/**
 * 关于样式类的操作
 * @param obj 元素对象
 * @param className 类名
 */
//添加
function addClass(obj,className){
    //先检查
    if(!hasClass(obj,className)) obj.className += " "+className;
}
//删除
function remove(obj,className){
    let reg = new RegExp('\\b'+className+'\\b');
    obj.className = obj.className.replace(reg,'');
    obj.className = obj.className.trim();
}
//避免重复添加
function hasClass(obj,className){
    let reg = new RegExp('\\b'+className+'\\b');
    return reg.test(obj.className);
}
//自动切换
function toggleClass(obj,className){
    if (hasClass(obj,className)){
        remove(obj,className);
    }else{
        addClass(obj,className);
    }
}
/*========================================================end==============================================================*/
(function(window){
    window.document.write('<script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.js"></script>');
})(window)